import ajax from 'uni-ajax'
// 创建请求实例
const instance = ajax.create({
  // 初始配置
  baseURL: import.meta.env.VITE_API_URL,
  timeout: 60000
})

// 添加请求拦截器
instance.interceptors.request.use(
  config => {
    // 在发送请求前做些什么
    if (config.isLoading != false) {
      uni.showLoading()
    }
    // 添加token
    config.header['Authorization'] = 'Bearer ' + sessionStorage.getItem('token') || ''
    return config
  },
  error => {
    uni.hideLoading()
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)
// 添加响应拦截器
instance.interceptors.response.use(
  response => {
    // 对响应数据做些什么
    if (response.statusCode == 204) {
      uni.hideLoading()
      return 204
    } else {
      uni.hideLoading()
      return response.data
    }
  },
  error => {
    console.log('error', error);
    if (error.statusCode == 401) {
      console.log("401了: ");
    }
    // 对响应错误做些什么
    // uni.hideLoading()
    if (error.errMsg == 'request:fail timeout') {
      return uni.showToast({
        title: '网络出错，请求超时',
        icon: 'error'
      })
    }
    uni.showToast({
      title: error.data.error.message || error.errMsg,
      icon: 'error'
    })
    return Promise.reject(error)
  }
)

// 导出 create 创建后的实例
export default instance